/**
 * 判断是否为空
 * @param value
 * @returns
 */
export function isBlank (value) {
  return (
    ['', null, undefined].includes(value) ||
    value.toString().trim() === '' ||
    value.toString().toLocaleLowerCase().trim() === 'null'
  )
}

/**
 * 判断是否是字符串
 * @param value
 * @returns
 */
export function isString (value) {
  return typeof value === 'string' || value instanceof String
}

/**
 * 判断是否是数字
 * @param value
 * @returns
 */
export function isNumber (value) {
  return typeof value === 'number' && !isNaN(value)
}

/**
 * 判断是否是数组
 * @param value
 * @returns
 */
export function isArray (value) {
  if (typeof Array.isArray === 'undefined') {
    return Object.prototype.toString.call(value) === '[object Array]'
  }
  return Array.isArray(value)
}

/**
 * 判断是否为对象
 * @param value
 * @returns
 */
export function isObject (value) {
  return Object.prototype.toString.call(value) === '[object Object]'
}

/**
 * 校验是否为合法的mind map json数据
 * @param mindJson
 */
export function isValidMindJson (mindJson) {
  if (!isObject(mindJson)) return false
  const { id, name, rootTopic, skeleton, theme } = mindJson
  if (isBlank(id) || isBlank(name) || !isObject(rootTopic) || isBlank(skeleton) || isBlank(theme)) return false
  return true
}
